A communication event may be established between an initiating device (that is, a calling device) and at least one responding device (that is a callee device). The communication event may for example be a call (audio or video call), a screen or whiteboard sharing session, other real-time communication event etc. The communication event may be between the initiating device and multiple responding devices, for example it may be a group call.
The communication event may be established by performing an initial signaling process, in which messages are exchanged via a network, so as to provide a means by which media data (audio and/or video data) can be exchanged between the devices in the established communication event. The signaling phase may be performed according to various protocols, such as SIP (Session Initiating Protocol) or bespoke signaling protocols. The media data exchange rendered possible by the signaling phase can be implemented using any suitable technology, for example using Voice or Video over IP (VoIP), and may or may not be via the same network as the signaling.
The communication event may be established under the control of a communications controller, such as a call controller. That is, the communications controller may control at least the signaling process. For example, all messages of the signaling process sent to the caller and callee devices may be sent from the communication controller, and between the devices themselves. For example, the calling device may initiate the signaling process by sending an initial request to the communications controller, but the communications controller may have the freedom to accept or reject the initial request. If the initial request is accepted, the communications controller itself may send out call invite(s) to the call device(s), and the responding device(s) in turn may respond to the communications controller (not the initiating device directly).